<?php

/**
 * Zend Framework (http://framework.zend.com/)
 *
 * @link      http://github.com/zendframework/ZendSkeletonApplication for the canonical source repository
 * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
 * @license   http://framework.zend.com/license/new-bsd New BSD License
 */

namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;

class ServiceController extends AbstractActionController {

    public function indexAction() {
        
    }

    // GET /contatos/novo
    public function novoAction() {
        return array('message' => $this->getFlashMessenger());
    }

    // POST /servie/adicionar
    public function adicionarAction() {
        // obtém a requisição
        $request = $this->getRequest();

        // verifica se a requisição é do tipo post
        if ($request->isPost()) {
            // obter e armazenar valores do post
            $postData = $request->getPost()->toArray();
            $formularioValido = true;

            // verifica se o formulário segue a validação proposta
            if ($formularioValido) {
                // aqui vai a lógica para adicionar os dados à tabela no banco
                // 1 - solicitar serviço para pegar o model responsável pela adição
                // 2 - inserir dados no banco pelo model
                // adicionar mensagem de sucesso
                $this->flashMessenger()->addSuccessMessage("Usuario cadastrado com sucesso. Ative sua conta através do link gerado e enviado para seu e-mail, assim você poderá acessar os recursos disponíveis no site. Obrigado!");

                // redirecionar para action index no controller contatos
                return $this->redirect()->toRoute('service', array('action' => 'novo'));
            } else {
                // adicionar mensagem de erro
                $this->flashMessenger()->addErrorMessage("Erro ao cadastrar Usuário.");

                // redirecionar para action novo no controllers contatos
                return $this->redirect()->toRoute('service', array('action' => 'novo'));
            }
        }
    }

    // GET /contatos/detalhes/id
    public function detalhesAction() {
        
    }

    // GET /contatos/editar/id
    public function editarAction() {
        
    }

    // PUT /contatos/editar/id
    public function atualizarAction() {
        
    }

    // DELETE /contatos/deletar/id
    public function deletarAction() {
        
    }

    // Filter Flash Messenger
    private function getFlashMessenger() {
        $messenger = array();
        $flashMessenger = $this->flashMessenger();

        if ($flashMessenger->hasSuccessMessages())
        {
            $teste = $flashMessenger->getSuccessMessages();
            $messenger['alert-success'] = array_shift($teste);
        }
        if ($flashMessenger->hasErrorMessages())
        {
            $teste2 = $flashMessenger->getErrorMessages();
            $messenger['alert-error'] = array_shift($teste2);
        }

        return $messenger;
    }

}
